// src/utils/request.ts
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';

// 创建一个 axios 实例
const instance = axios.create({
  baseURL: 'https://api.openweathermap.org/data/2.5/weather', // 替换为你的 API 基础 URL
  timeout: 10000, // 设置请求超时时间
});

// 定义一个通用的请求函数
const request = async (url: string, method: 'GET' | 'POST',  options: any = {}): Promise<AxiosResponse> => {
  const config: AxiosRequestConfig = {
    url,
    method,
    params: options.params, // 将params传递给请求
    data: options.data,     // 如果有请求体的话
  };

  // 如果是 POST 请求，附带请求体
  if (method == 'POST' && options.data) {
    config.data = options.data;
  }
  if (method == 'GET' && options.params) {
    config.params = options.params;
  }
  try {
    const response = await instance(config);
    return response;
  } catch (error) {
    console.error('请求失败:', error);
    throw error;
  }
};

export default request;